public class Test {
    public static void main(String[] args) {
        //
    }
}

class Solution {
    public int[] productExceptSelf(int[] nums) {
        //
        int len = nums.length;
        int[] f = new int[len];//前缀 积 数组 f[i]表示：i下标左边元素的积
        int[] g = new int[len];//后缀 积 数组 g[i]表示：i下标右边元素的积

        //
        //初始化数组（预处理）
        f[0] = 1;//先处理细节问题`
        for(int i = 1; i < len; i++){
            f[i] = nums[i-1] * f[i-1];
        }

        g[len-1] = 1;
        for(int i = len-2; i >= 0; i--){
            g[i] = nums[i+1] * g[i+1];
        }

        int ret[] = new int[len];
        for(int i = 0; i < len; i++){
            ret[i] = f[i] * g[i];
        }
        return ret;
    }
}